package com.xjk.api.ocr.tencent.impl;

import com.tencentcloudapi.common.AbstractModel;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.ocr.v20181119.OcrClient;
import com.tencentcloudapi.ocr.v20181119.models.RecognizeGeneralInvoiceRequest;
import com.tencentcloudapi.ocr.v20181119.models.RecognizeGeneralInvoiceResponse;
import com.tencentcloudapi.ocr.v20181119.models.VatInvoiceOCRRequest;
import com.tencentcloudapi.ocr.v20181119.models.VatInvoiceOCRResponse;

/**
 * @author 许嘉凯 JM032791
 * @date 2024-07-15
 */
public class TencentRecognizeGeneralInvoiceOCR extends TencentAbstractOCR{


  public String doHandle(String imageBase64){
    try{
      init();
      // 实例化一个请求对象,每个接口都会对应一个request对象
      RecognizeGeneralInvoiceRequest req = new RecognizeGeneralInvoiceRequest ();

      // 下面的内容均为选填字段：
      // 图片的base64编码内容
      req.setImageBase64(imageBase64);
      // 图片的URL

      // Types.N 需要识别的票据类型列表，为空或不填表示识别全部类型。

      // EnableOther 是否开启其他票识别，默认值为true，开启后可支持其他发票的智能识别。

      // EnablePdf 是否开启PDF识别，默认值为true，开启后可同时支持图片和PDF的识别。

      // PdfPageNumber 需要识别的PDF页面的对应页码，传入时仅支持PDF单页识别，当上传文件为PDF且EnablePdf参数值为true时有效，默认值为1。

      // EnableMultiplePage 是否开启PDF多页识别
      req.setEnableMultiplePage(true);

      // EnableCutImage 是否返回切割图片base64

      // EnableItemPolygon 是否打开字段坐标返回




      // 返回的resp是一个RecognizeGeneralInvoiceResponse的实例，与请求对象对应
      RecognizeGeneralInvoiceResponse resp = client.RecognizeGeneralInvoice(req);
      // 输出json格式的字符串回包
      return AbstractModel.toJsonString(resp);
    } catch (TencentCloudSDKException e) {
      System.out.println(e.toString());
      return null;
    }
  }

}
